#ifndef ANDCONSTRAINT_H_
#define ANDCONSTRAINT_H_

#include "constraint.h"
#include <boost/shared_ptr.hpp>

class AndConstraint : public Constraint {
    /// constraint left to the AND operator
    boost::shared_ptr<Constraint> lconstraint_;
    
    /// constraint right to the AND operator
    boost::shared_ptr<Constraint> rconstraint_;
    
public:
    AndConstraint(boost::shared_ptr<Constraint> lconstraint,
                  boost::shared_ptr<Constraint> rconstraint);
    virtual ~AndConstraint();

    bool consider(const Schedule&);
    std::string to_string();
};

#endif /* ANDCONSTRAINT_H_ */
